package org.springframework.samples.mvc.basic.izvrsenaRealizacija;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.samples.mvc.basic.business.AbstractBusinessService;
import org.springframework.samples.mvc.basic.business.Transformer;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.proba.annotations.GenericDAO;
import com.proba.annotations.IzvrsenaRealizacijaDAO;
import com.proba.annotations.pojo.IzvrsenaRealizacija;

@Service
public class IzvrsenaRealizacijaBusinessServiceImpl extends AbstractBusinessService<IzvrsenaRealizacija, IzvrsenaRealizacijaView> implements IzvrsenaRealizacijaBusinessService {

	@Autowired
	private IzvrsenaRealizacijaDAO dao;
	private IzvrsenaRealizacijaTransformer transformer = new IzvrsenaRealizacijaTransformer();
	
	@Override
	@Transactional
	public List<IzvrsenaRealizacijaView> findAll(int startIndex, int pageSize,
			IzvrsenaRealizacijaView queryInfo) {
		List<IzvrsenaRealizacija> res = dao.findByFilterParams(startIndex, pageSize, queryInfo.getId(), queryInfo.getDatumFrom(), queryInfo.getDatumTo(), queryInfo.getEksternaRealIznosDen(), queryInfo.getEksternaRealKolicina()
				, queryInfo.getGotovProizvod(), queryInfo.getInternaRealIznosDen(), queryInfo.getInternaRealKolicina(), queryInfo.getPartner(), queryInfo.getProizvodenPogon(), 
				queryInfo.getZaSopstvenoRealIznosDen(), queryInfo.getZaSopstvenoRealKolicina());
		return transform(res);
	}

	@Override
	protected GenericDAO<IzvrsenaRealizacija, Long> getDao() {
		return dao;
	}

	@Override
	protected Transformer<IzvrsenaRealizacija, IzvrsenaRealizacijaView> getTransformer() {
		return transformer;
	}

}
